package com.cn.wanxi.util;

import com.cn.wanxi.model.CompanyModel;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //        每一个类里面都会默认一个无参数的构造方法
//        java类里面如果有构造方法有参数，则无参数的构造方法失效
//如果需要有一个无参数的构造方法，则直接定义一个无参数的构造方法
//        \代表转义字符   &nbsp; &gt;
        String path = "E:/wanxi/step-3\\canyin03-0228\\web\\aa";
        String fileName = "21.exe";
//        new File()里面的路径可以写错吗？
        File directory = new File(path);
        new Test().forFile(directory.toString());
//        现在我需要将当前这个文件目录删除，
//        则必须知道里面是否有文件夹，因为如果有文件或者文件夹，不能直接删除
//        所以，我们需要对下面的文件进行遍历，因为文件里面还有文件，则我们需要再次遍历
//        所以，会发现，是一个感觉像死循环，一直遍历到最后没有文件夹为止
//        所以，我们单独写一个方法用作遍历

//        directory.delete();

//         String[] files = directory.list();得到的是文件目录名,但是我们删除应该是文件的绝对路径
//        String[] files = directory.list();
//        for (int i = 0; i < files.length; i++) {
//            System.out.println(files[i]);
//            File test = new File(files[i]);
//            test.delete();
//        }
//        File[] files = directory.listFiles();
//        冒号前面的是数组的某一个对象，冒号后面的是需要遍历的数组
//        for (File file : files
//        ) {
//            if (file.isDirectory()) {
//                File[] files1 = file.listFiles();
//                for (File f : files1
//                ) {
//                    if (f.isDirectory()) {
//
//                    } else {
//                        f.delete();
//                    }
//                }
//            }
//        }
//        判断当前这个file是否真实？
//        boolean exists = directory.exists();
//        System.out.println(exists);
//        创建一个文件夹
//        boolean mkdir = directory.mkdirs();
//        面试的时候，如果文件一件创建，再次创建应该返回true还是false？
//        System.out.println(mkdir);

//        File file = new File(directory, fileName);
//        try catch 捕获异常
//        try {
//            boolean delete = directory.delete();
//            System.out.println(delete);
//            boolean newFile = file.createNewFile();
//            System.out.println(newFile);

//        } catch (IOException e) {
//            e.printStackTrace();
//        }
    }

    /**
     * 调用自身
     * @param path
     */
    private void forFile(String path) {
        File file = new File(path);
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory()) {
                forFile(files[i].toString());
                System.out.println("需要遍历的文件夹"+files[i].toString());
            } else {
                System.out.println("可以直接删除的文件"+files[i].toString());
            }
            files[i].delete();
        }

    }

}
